package com.fxg.Util;

import lombok.extern.slf4j.Slf4j;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 *  一个小demo，就不使用spring容器，通过枚举保证单例
 *  保证 jedisPool 只有一个
 */
@Slf4j
public enum RedisHelper {

    INSTANCE;
    JedisPool jedisPool = null;

    /**
     * maxTotal	资源池中的最大连接数，默认值为8
     * maxIdle	资源池允许的最大空闲连接数，默认值为8
     * minIdle	资源池确保的最少空闲连接数，默认值为0
     *  对于参数的设置非常重要，开始我把 minIdle 设为1 ，maxIdle设为10，maxTotal没设置，可以尝试一下，简直是龟速
     *  电脑性能不行的话，500件商品60s根本卖不完！（我就没卖完，公司电脑不行）
     *  参数调大之后，嗖嗖滴，嘿嘿嘿
     */
    RedisHelper() {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(500);
        jedisPoolConfig.setMaxIdle(30);
        jedisPoolConfig.setMinIdle(10);
        jedisPoolConfig.setTestOnBorrow(true);
        jedisPool = new JedisPool(jedisPoolConfig, "127.0.0.1", 6379);
    }

    public Jedis jedis() {
        return jedisPool.getResource();
    }


}
